package com.budwk.app.wxprogram.models;

import com.budwk.starter.common.openapi.annotation.ApiModel;
import com.budwk.starter.common.openapi.annotation.ApiModelProperty;
import com.budwk.starter.database.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;

import java.io.Serializable;
import java.util.Date;

/**
 * @title: Wx_user
 * @Author Tan
 * @Date: 2023/4/7 16:11
 * @Version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Table("wx_user")
@Comment("微信用户信息表")
@ApiModel(description = "微信用户信息表")
public class Wx_authorizationsuser extends BaseModel implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column
    @Comment("id")
    @Name
    @ApiModelProperty(description = "id")
    @ColDefine(type = ColType.VARCHAR, width = 32)
    @PrevInsert(els = {@EL("uuid()")})
    private String id;

    @Comment("用户昵称")
    @Column
    @ApiModelProperty(description = "用户昵称")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String nick_name;

    @Comment("性别")
    @Column
    @ApiModelProperty(description = "性别")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String sex;

    @Comment("手机号码")
    @Column
    @ApiModelProperty(description = "手机号码")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String phone;

    @Comment("注册省份")
    @Column
    @ApiModelProperty(description = "注册省份")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String province;

    @Comment("注册城市")
    @Column
    @ApiModelProperty(description = "注册城市")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String city;

    @Comment("注册时间")
    @Column
    @ApiModelProperty(description = "注册时间")
    @ColDefine(type = ColType.TIMESTAMP, width = 200)
    private Date create_time;

    @Comment("头像")
    @Column
    @ApiModelProperty(description = "头像")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String headimg_url;

    @Comment("创建者")
    @Column
    @ApiModelProperty(description = "创建者")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String create_id;

    @Comment("更新者")
    @Column
    @ApiModelProperty(description = "更新者")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String update_id;

    @Comment("更新时间")
    @Column
    @ApiModelProperty(description = "更新时间")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String update_time;

    @Comment("用户备注")
    @Column
    @ApiModelProperty(description = "用户备注")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String remark;

    @Comment("逻辑删除标记（0：显示；1：隐藏）")
    @Column
    @ApiModelProperty(description = "逻辑删除标记（0：显示；1：隐藏）")
    @ColDefine(type = ColType.CHAR, width = 200)
    private Character del_flag;

    @Comment("应用类型(1:小程序，2:公众号)")
    @Column
    @ApiModelProperty(description = "应用类型(1:小程序，2:公众号)")
    @ColDefine(type = ColType.CHAR, width = 200)
    private Character app_type;

    @Comment("是否订阅（1：是；0：否；2：网页授权用户）")
    @Column
    @ApiModelProperty(description = "是否订阅（1：是；0：否；2：网页授权用户）")
    @ColDefine(type = ColType.CHAR, width = 200)
    private Character subscribe;

    @Comment("返回用户关注的渠道来源，ADD_SCENE_SEARCH 公众号搜索，ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移，ADD_SCENE_PROFILE_CARD 名片分享，ADD_SCENE_QR_CODE 扫描二维码，ADD_SCENEPROFILE LINK 图文页内名称点击，ADD_SCENE_PROFILE_ITEM 图文页右上角菜单，ADD_SCENE_PAID 支付后关注，ADD_SCENE_OTHERS 其他")
    @Column
    @ApiModelProperty(description = "返回用户关注的渠道来源，ADD_SCENE_SEARCH 公众号搜索，ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移，ADD_SCENE_PROFILE_CARD 名片分享，ADD_SCENE_QR_CODE 扫描二维码，ADD_SCENEPROFILE LINK 图文页内名称点击，ADD_SCENE_PROFILE_ITEM 图文页右上角菜单，ADD_SCENE_PAID 支付后关注，ADD_SCENE_OTHERS 其他")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String subscribe_scene;

    @Comment("关注时间")
    @Column
    @ApiModelProperty(description = "关注时间")
    @ColDefine(type = ColType.TIMESTAMP, width = 200)
    private Date subscribe_time;

    @Comment("关注次数")
    @Column
    @ApiModelProperty(description = "关注次数")
    @ColDefine(type = ColType.INT, width = 200)
    private Integer subscribe_num;

    @Comment("取消关注时间")
    @Column
    @ApiModelProperty(description = "取消关注时间")
    @ColDefine(type = ColType.TIMESTAMP, width = 200)
    private Date cancel_subscribe_time;

    @Comment("用户标识")
    @Column
    @ApiModelProperty(description = "用户标识")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String open_id;

    @Comment("所在国家")
    @Column
    @ApiModelProperty(description = "所在国家")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String country;

    @Comment("用户语言")
    @Column
    @ApiModelProperty(description = "用户语言")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String language;


    @Comment("union_id")
    @Column
    @ApiModelProperty(description = "union_id")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String union_id;

    @Comment("用户组")
    @Column
    @ApiModelProperty(description = "用户组")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String group_id;

    @Comment("标签列表")
    @Column
    @ApiModelProperty(description = "标签列表")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String tagid_list;

    @Comment("二维码扫码场景")
    @Column
    @ApiModelProperty(description = "二维码扫码场景")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String qr_scene_str;

    @Comment("纬度")
    @Column
    @ApiModelProperty(description = "纬度")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String latitude;

    @Comment("经度")
    @Column
    @ApiModelProperty(description = "经度")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String longitude;

    @Comment("地理位置精度")
    @Column
    @ApiModelProperty(description = "地理位置精度")
    @ColDefine(type = ColType.FLOAT, width = 200)
    private Float precision;

    @Comment("会话密钥")
    @Column
    @ApiModelProperty(description = "会话密钥")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String session_key;

    @Comment("密码")
    @Column
    @ApiModelProperty(description = "密码")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String password;

    @Comment("积分")
    @Column
    @ApiModelProperty(description = "积分")
    @ColDefine(type = ColType.FLOAT, width = 200)
    private Float points;

    @Comment("是否接收时间的推送")
    @Column
    @ApiModelProperty(description = "是否接收时间的推送")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String receive_event;





}
